package com.qianxunclub.chapter4.netty;

import java.util.ArrayList;
import java.util.List;

/**
 * 来账来源
 * @author yitian.zb
 * @version $Id: VirtualAccountVersionEnum.java, v 0.1 2018年11月05日 下午3:08:54 yitian.zb Exp $
 */
public enum VirtualAccountVersionEnum {

    /**
     * B2B
     */
    B2B("B2B","B2B"),

    /**
     * V1
     */
    V1("V1","V1"),

    /**
     * V2
     */
    V2("V2","V2");

    /**
     * 代码
     */
    private String code;

    /**
     * 描述
     */
    private String description;

    VirtualAccountVersionEnum(String code, String description) {
        this.code = code;
        this.description = description;
        VirtualAccountVersionList.add(this);
    }

    public String getCode() {
        return code;
    }

    public String getDescription() {
        return description;
    }


    static class VirtualAccountVersionList{

        private static List<VirtualAccountVersionEnum> virtualAccountVersionList = new ArrayList<>();
        public static void add(VirtualAccountVersionEnum virtualAccountVersionEnum) {
            virtualAccountVersionList.add(virtualAccountVersionEnum);
        }

        public static List<VirtualAccountVersionEnum> getVirtualAccountVersionList() {
            return virtualAccountVersionList;
        }
    }

    public static void main(String[] args) {
        List<VirtualAccountVersionEnum> virtualAccountVersionList = VirtualAccountVersionList.getVirtualAccountVersionList();
        virtualAccountVersionList.forEach(virtualAccountVersionEnum -> {
            System.out.println(virtualAccountVersionEnum);
        });

        for (VirtualAccountVersionEnum virtualAccountVersionEnum: VirtualAccountVersionEnum.values()) {
            System.out.println(virtualAccountVersionEnum);
        }
    }
}
